'''
@Descripttion: 
@version: 
@Author: dkolli
@Date: 2019-10-28 19:41:33
@LastEditors: sueRimn
@LastEditTime: 2019-10-28 20:50:27
'''
# 读取文件按照字符
filename='module1/poem.txt'
f = open(filename, 'r',encoding='utf-8')
content = f.read(4)
print(content)
f.close()
print('='*20)

# 读取文件按照行来读取
f = open(filename, 'r', encoding='utf-8')
content = f.readline()
while len(content) > 0:
    print(content)
    content = f.readline()
f.close()
print('=' * 20)

# 文件的写入操作
f = open('module1/b.txt', 'w')
f.write('hello python\n')
a=['hello java\n','hello php\n','hello C++\n']
f.writelines(a)
f.close()
print('=' * 20)

#引入python模块os
import os
#文件复制
def copy_file(file1, file2):
    '''
    @description: 文件复制函数
    @test: test font
    @msg: 
    @parameter: file1,file2
    @return: 
    '''
    # 打开源文件和目标文件
    f1 = open(file1, 'rb')
    # 文件的路径应该是从形参传过来的，要有读的权限，所以用‘r’，同时有的时候会复制一个图片，所以用‘b’
    f2 = open(file2, 'wb')
    # 把f1读取出来然后复制给file2，所以要给一个写权限'w',同样可能写的是图片等文件，所以用‘b’
    # 需要一行行的读，循环读取写入，实现复制内容
    content = f1.readline()
    while len(content) > 0:
        f2.write(content)
        content = f1.readline()
    f1.close()
    f2.close()
    
copy_file('module1/b.txt', 'module1/c.txt')


# 通过导入os模块，进行目录的复制
import os
def copy_path(dir1, dir2):
    # 获取被复制目录中所有文件信息
    dlist = os.listdir(dir1)
    
    # 创建新目录
    os.mkdir(dir2)
    # 遍历所有文件，并执行文件复制
    for f in dlist:
        # 为遍历的文件添加目录路径
        file1 = os.path.join(dir1, f)   #源
        file2 = os.path.join(dir2, f)   #目标
        # 判断是否是文件，文件则直接复制，调用已经写好的文件复制函数
        if os.path.isfile(file1):
            copy_file(file1, file2)
        # 判断是否是目录（文件夹）    
        if os.path.isdir(file1):
            copy_path(file1, file2)  # 递归调用自己，来实现子目录的复制。    
file1 = 'Pygal'
file2 = 'module1/Pygal'
copy_path(file1, file2)
